greedy implementation math

Please click on ads to support us..

Python Code:

from typing import List

class Solution:

    def compute(self, a: List[int], n: int, k: int) -> int:

        front = (k + 1) // 2
        back = (k // 2)
        for i in range(n):
            if (a[i] <= front):
                front -= a[i]
                a[i] = 0
            else:
                a[i] -= front
                break

        for i in range(n - 1, -1, -1):
            if (a[i] <= back):
                back -= a[i]
                a[i] = 0
            else:
                a[i] -= back
                break

        return a.count(0)


if __name__ == '__main__':
    cl = input()
    sln = Solution()

    for i in range(int(cl)):
        cl1 = input()
        a1 = cl1.split(' ')

        cl2 = input()
        a2 = cl2.split(' ')
        print(sln.compute([int(p) for p in a2], int(a1[0]), int(a1[1])))


Comments

Submit
0 Comments
More Questions

734B - Anton and Digits
1080A - Petya and Origami
1642D - Repetitions Decoding
1440A - Buy the String
1658F - Juju and Binary String
478A - Initial Bet
981A - Antipalindrome
365A - Good Number
1204B - Mislove Has Lost an Array
1409D - Decrease the Sum of Digits
1476E - Pattern Matching
1107A - Digits Sequence Dividing
1348A - Phoenix and Balance
1343B - Balanced Array
1186A - Vus the Cossack and a Contest
1494A - ABC String
1606A - AB Balance
1658C - Shinju and the Lost Permutation
1547C - Pair Programming
550A - Two Substrings
797B - Odd sum
1093A - Dice Rolling
1360B - Honest Coach
1399C - Boats Competition
1609C - Complex Market Analysis
1657E - Star MST
1143B - Nirvana
1285A - Mezo Playing Zoma
919B - Perfect Number
894A - QAQ